package com.baidu.mpks.permission.dao;

import com.baidu.mpks.permission.domain.PermissionDataUser;
import org.apache.ibatis.annotations.Param;

import java.util.List;
import java.util.Set;

public interface PermissionDataUserDao {

    int add(PermissionDataUser permissionDataUser);

    int batchAdd(List<PermissionDataUser> permissionDataUser);

    void deleteByRoleId(int roleId);

    void deleteByDataIdAndIdType(String dataId, String idType);

    void batchDeleteByDataId(@Param("dataIds") List<String> dataIds);

    void deleteByDataIdsAndOpType(List<String> dataIds, String op);

    void deleteByDataIdAndOpType(String dataId, String op);

    void deleteByDataIdsAndIdType(Set<String> dataIds, String idType);

    void deleteByUserIdsAndDataIdAndIdType(String dataId, Set<String> userIds, String idType);

    List<PermissionDataUser> getByUserIdAndIdType(String userId, String idType);

    List<PermissionDataUser> getByUserId(String userId);

    Set<String> getUsersIdByDataIdAndIdType(String dataId, String idType);

    List<String> getDataIdByIdType(String idType);
}
